package com.bookcloud.java21.chapter11.Map接口实现类113;

import java.util.*;

/** 113 章节：Map 接口实现类 */
public class MapExamples {
  public static void main(String[] args) {
    // 一、HashMap 事例
    Map<String, Integer> hashMap = new HashMap<>();
    hashMap.put("Apple", 1);
    hashMap.put("Banana", 2);
    hashMap.put("Cherry", 3);
    System.out.println("HashMap 中的元素为：" + hashMap);
    // 取map中元素
    Integer appleValue = hashMap.get("Apple");
    System.out.println("Apple 的值为：" + appleValue);
    // 取map中不存在的元素
    Integer orangeValue = hashMap.get("Orange");
    System.out.println("Orange 的值为：" + orangeValue);
    // 取出map中元素的数量
    int size = hashMap.size();
    System.out.println("HashMap 中的元素数量为：" + size);
    // 取出map中所有的key
    Set<String> keySet = hashMap.keySet();
    System.out.println("HashMap 中的所有 key 为：" + keySet);
    // 取出map中所有的value
    Collection<Integer> values = hashMap.values();
    System.out.println("HashMap 中的所有 value 为：" + values);
    // 二、LinkedHashMap 事例，可以保持插入顺序
    Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
    linkedHashMap.put("Apple", 1);
    linkedHashMap.put("Banana", 2);
    linkedHashMap.put("Cherry", 3);
    System.out.println("LinkedHashMap 中的元素为：" + linkedHashMap);
    // 取出linkedHashMap其中的值
    Integer appleValue2 = linkedHashMap.get("Apple");
    System.out.println("Apple 的值为：" + appleValue2);
    // 三、TreeMap 事例，可以排序
    Map<String, Integer> treeMap = new TreeMap<>();
    treeMap.put("Apple", 1);
    treeMap.put("Banana", 2);
    treeMap.put("Cherry", 3);
    System.out.println("TreeMap 中的元素为：" + treeMap);
    // 取出treeMap其中的值
    Integer appleValue3 = treeMap.get("Apple");
    System.out.println("Apple 的值为：" + appleValue3);
    // 取出treeMap中所有的key
    Set<String> keySet2 = treeMap.keySet();
    System.out.println("TreeMap 中的所有 key 为：" + keySet2);
    // 取出treeMap中所有的value
    Collection<Integer> values2 = treeMap.values();
    System.out.println("TreeMap 中的所有 value 为：" + values2);
  }
}
